using Game.Networking.Server;
using Game.Networking.Utils;

namespace Game.Networking.Events {
	/// <summary>
	/// Common events
	/// </summary>
	/// 
	public struct ChatMessageReceived {
		public ChatMessage Message;
	}

	/// <summary>
	/// Server Events
	/// </summary>
	public struct OnClientConnected {
		public int         ConnectionId;
		public ClientState State;
	}

	public struct OnClientDisconnected {
		public int ConnectionId;
		public ClientState State;
	}

	public struct OnNewClientRegistered {
		public string Name;
	}

	public struct OnServerReceivedChatMessage {
		public ClientState Sender;
		public string      Message;
	}

	public struct OnServerInitializationFinished {

	}

	public struct OnConnectedToServer {

	}

	/// <summary>
	/// Client Events
	/// </summary>
	public struct OnDisconnectedFromServer {
	}

	public struct OnForceDisconnectedFromServer {
		public string Message;
		public DisconnectReason Reason;
	}

	public struct OnConnectSuccess {
	}
}